#ifndef PARSER_H_
#define PARSER_H_

#include <string>
#include <vector>
#include <libxml++/libxml++.h>

#include "student.h"
#include "curriculum.h"

class Parser
{
public:
    //Constructor Destructor
    Parser();
    Parser( const std::string& studentFile  );
    virtual ~Parser();

    //Methods
    bool parse();
    

    //Accessors/Mutators
    Student* getStudent() const;
    
protected:
    bool doStudent();
    bool doCurriculum();
    bool doCourses();




    xmlpp::DomParser parser;
    std::string studentFilePath;
    xmlpp::Document* document;

    

    Student* pStudent;
    Curriculum* pCurriculum;
    std::vector<Course> *pvCourses;

private:
    bool init();

};

#endif
